package com.hyxt.DTO.protocols;

import java.util.HashMap;
import java.util.Map;

/**
 * @Description: 是否欧亚协议判断类
 * @author shenp
 */
public class OYCase extends CommonCase implements ICase {
    /**
     * @Description:判断协议类型
     * @param data
     * @return
     */
    @Override
    public boolean doCase(Object data) {
        Map<String, Object> map = new HashMap<String, Object>();
        byte[] bytes = (byte[]) data;
        // 命令头为'*' 第二三位为制造商，如“EA”等 第4位为分隔符','
        // 接下来为10位的车载机序号（10位的阿拉伯数字）','分割以后有个两位的指令代号
        if (bytes[0] == '*' && bytes[3] == ',' && bytes[bytes.length - 1] == '#') {
            // 第二三位为制造商，如“EA”等
            if (bytes[1] == 'E' && bytes[2] == 'A') {
                return true;
            }
            // 接下来为10位的车载机序号（10位的阿拉伯数字）','分割以后有个两位的指令代号
            // 倒数最后一个字段为10位的TERMINAL_STATUS，而天琴的为8位的vehicle_status
            else if (bytes[14] == ',' && bytes[17] == ',' && bytes[bytes.length - 12] == ',') {
                return true;
            }
        }
        // 最后一位
        return false;
    }

    @Override
    public byte getDataEnd() {
        return '#';
    }

    @Override
    public byte getDataHead() {
        return '*';
    }

    /**
     * @Description:获取唯一标识
     * @param data
     * @return
     */
    @Override
    public String getSign(byte[] data){
        String body = new String(data);
        String[] splitBody = body.split("\\,");
        //获取imei号
        String sign = splitBody[1];
        return sign;
    }

    public static void main(String[] args) {
        OYCase oyCase = new OYCase();
        oyCase.doCase("*EA,0000000000,V1,010203,V,5323.8500,N,00717.0970,E,000.00,000,191105,0000693068,0021010040#".getBytes());
    }
}
